package br.com.vilababy.sigvb.modelo;

import java.io.Serializable;
import java.util.Calendar;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;

@Entity
public class Funcionario extends SIGVBModelo implements Serializable {

	/**
	 * @author Diego Patrick da Silva Santos
	 */
	private static final long serialVersionUID = 1L;

	@Id @GeneratedValue
	@Column(name="codigo_funcionario")
	private Long id;
	@Column(name="data_nascimento", nullable=false)
	private Calendar dataNascimento;
	@ManyToOne
	@JoinColumn(nullable=false)
	private Unidade unidade;
	@OneToOne
	@JoinColumn(nullable=false)
	private Contato contato;
	@OneToOne
	@JoinColumn(nullable=false)
	private Endereco endereco;
	@OneToOne
	@JoinColumn(nullable=false)
	private DocumentacaoPessoal documentacaoPessoal;
	@OneToOne
	@JoinColumn(nullable=false)
	private DadosBancarios dadosBancarios;
	@Column(nullable=false, length=180)
	private String nome;
	@Column(name="numero_cartao_dftrans", length=30)
	private String numeroCartaoDFTRANS;
	@OneToMany(mappedBy="funcionario")
	private List<Admissao> admissoes;
	@OneToMany(mappedBy="funcionario")
	private List<Transporte> transportes;
	
	
	public final Long getId() {
		return id;
	}
	public final void setId(Long id) {
		this.id = id;
	}
	public final Calendar getDataNascimento() {
		return dataNascimento;
	}
	public final void setDataNascimento(Calendar dataNascimento) {
		this.dataNascimento = dataNascimento;
	}
	public final Unidade getUnidade() {
		return unidade;
	}
	public final void setUnidade(Unidade unidade) {
		this.unidade = unidade;
	}
	public final Contato getContato() {
		return contato;
	}
	public final void setContato(Contato contato) {
		this.contato = contato;
	}
	public final Endereco getEndereco() {
		return endereco;
	}
	public final void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}
	public final DocumentacaoPessoal getDocumentacaoPessoal() {
		return documentacaoPessoal;
	}
	public final void setDocumentacaoPessoal(DocumentacaoPessoal documentacaoPessoal) {
		this.documentacaoPessoal = documentacaoPessoal;
	}
	public final DadosBancarios getDadosBancarios() {
		return dadosBancarios;
	}
	public final void setDadosBancarios(DadosBancarios dadosBancarios) {
		this.dadosBancarios = dadosBancarios;
	}
	public final String getNome() {
		return nome;
	}
	public final void setNome(String nome) {
		this.nome = nome;
	}
	public final String getNumeroCartaoDFTRANS() {
		return numeroCartaoDFTRANS;
	}
	public final void setNumeroCartaoDFTRANS(String numeroCartaoDFTRANS) {
		this.numeroCartaoDFTRANS = numeroCartaoDFTRANS;
	}
	public final List<Admissao> getAdmissoes() {
		return admissoes;
	}
	public final void setAdmissoes(List<Admissao> admissoes) {
		this.admissoes = admissoes;
	}
	public final List<Transporte> getTransportes() {
		return transportes;
	}
	public final void setTransportes(List<Transporte> transportes) {
		this.transportes = transportes;
	}
	
}
